Typically, an operating system (OS) is installed on a computer by an operator sitting at the console of the computer who types in data on a keyboard in response to questions output to the computer display by the boot ROM of the computer. This process is tedious and generally unsuitable for installing operating systems on large numbers of computers. Another known method of installing operating systems on computers involves manually configuring files on a server which tells the server exactly how to install operating systems on specific computers which are in communication with the server via a local area network (LAN). This method requires that an operator go to the computer being installed and enter instructions on the console instructing the computer to boot from a specific machine and install an OS. The operator then must type in responses to certain start-up questions output to the display. Once these steps are completed, the remainder of the installation process is accomplished automatically by the server.
One disadvantage of the known installation methods is that operator intervention is required. Operator intervention increases the installation time as well as the likelihood that an error will occur during the installation process. Another disadvantage of using the server to install the computers on the LAN is that the server must contain a specifically-configured file for each machine to be installed, which makes the method impractical for installing large empires, e.g., ten or more machines.
Accordingly, a need exists for a method and apparatus for automatically installing operating systems on computers which does not require human involvement and which is capable of automatically installing operating systems on large numbers of computers. Automatic OS installation without human involvement would be particularly advantageous in automatic testing systems where users operating workstations schedule tests on test machines which are located remotely with respect to the user's workstation and which are connected to the workstations via a network. Automatic OS installation in this environment would allow a new OS to be automatically loaded on a test machine so that a test to be executed which requires an OS different from the OS currently running on the test machine could be processed by the test machine once the correct OS has been installed. Although automatic testing systems are known, the known automatic testing systems only have the capability of re-booting test machines and do not have the capability of automatically installing an OS on a test machine.
For example, Sun Microsystems, Inc. has proposed an automated task-based scheduler for use with UNIX platform systems which uses scripts to allow users operating "client" machines to schedule tests to be executed on "target" machines. A central server receives a request from a client machine to perform a task. The server maintains information relating to all currently scheduled tasks on all target machines in a "status" database. The server maintains information relating to the expected duration of each test package and other test package attributes in a "packages" database. When the server receives a request to perform a task from a client machine, the server determines the loads on each of the target machines based on the expected duration of each test package and then schedules the task on the target machine with the least current load. A task file created at the client machine and copied to the server includes priority information relating to the task requested by the client machine. The target machine selects a task to be performed based on this priority information. Once a task is completed, the results are copied back to the server which compares them to a set of "golden results" and creates a comparison report which is mailed back to the user that requested the test.
One disadvantage of the system proposed by Sun Microsystems is that no provision is made for loading a new operating system on a target machine. Rather, a test is only scheduled on a target machine which has the appropriate OS already installed on it. Therefore, if a target machine with the appropriate OS is not available when a test needs to be executed, the test cannot be executed until a target machine having the appropriate OS is available to execute the test.
Therefore, a need exists for a method and apparatus which will enable an OS to be automatically installed on a test machine in an automated testing system without the need for human involvement during the installation process.